/*
 * AlbumDT.h - Grupo 5 - Prog. Avanzada 2011
 *
 *  Javier Dominguez - 4.901.161-6
 *  Marcelo Parada - 1.977.094-9
 *  Rodrigo Ruiz - 4.481.611-2
 *  Maximiliano Silvera - 4.106.938-6
 */

#ifndef ALBUMDT_H_
#define ALBUMDT_H_

#include <string>
#include "../util/collections/ICollectible.h"
#include "../dt/ElementoDT.h"
#include "../dao/Album.h"
#include "../util/genCollections/ColConcrete.h"
#include "../dt/ArtistaDT.h"
#include <sstream>

using namespace std;

class AlbumDT: public ElementoDT
{
private:
	string nombre;

	int anioEdicion;

	ColConcrete<ArtistaDT*> *artistas;

public:
	AlbumDT();

	AlbumDT(string nombre, int anioEdicion);

	// Hererado de elementoDT
	virtual int tipoElementoDT();

	// Heredado de icollectible
    virtual bool same(ICollectible *icollectible);

    // Heredado de icollectible
    virtual string toString();

    int getAnioEdicion() const;

    string getNombre() const;

    void setAnioEdicion(int anioEdicion);

    void setNombre(string nombre);

    ColConcrete<ArtistaDT*> *getArtistas() const;

    void setArtistas(ColConcrete<ArtistaDT*> *artistas);

    virtual ~AlbumDT();
};

#endif /* ALBUMDT_H_ */
